package main

import "fmt"

func swap(a *int, b *int) {
	c := *a
	*a = *b
	*b = c
}
func main() {
	a := 10
	b := 20
	//a, b = b, a
	//swap(&a, &b)
	fmt.Println(a, b)
	fmt.Printf("%p\n", &a)
	var ip *int
	ip = &a
	*ip = 30
	fmt.Println(a)
	fmt.Printf("ip所指向的内存空间地址是：%p,内存中的值是：%d\n", ip, *ip)
	swap(&a, &b)
	fmt.Println(a, b)

	//arr := [3]int{1, 2, 3}
	//var ipArr *[3]int = &arr
	//	指针数组：创建能够存放三个指针变量的数组
	var ptrs [3]*int
	ptrs[0] = &a
	fmt.Println(ptrs)

	//	很多时候都是函数参数指明的类型

}
